
package com.ywjg.serviceimp;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;
import javax.transaction.Transactional;

import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;

import com.ywjg.dao.CheckRapairDao;
import com.ywjg.dao.RapairToRapairTypeDao;
import com.ywjg.model.CheckRapair;
import com.ywjg.model.MyBean;
import com.ywjg.model.RapairToRapairType;
import com.ywjg.service.ICheckRapairService;
import com.ywjg.utils.Utils;
@Service
public class CheckRapairService implements ICheckRapairService {

	@Resource
	CheckRapairDao checkRapairDao;
	@Resource
	RapairToRapairTypeDao rapairToRapairTypeDao;
	
	/* (non-Javadoc)
	 * @see com.ywjg.serviceimp.ICheckRapairService#getCheckRapairInf(java.lang.Integer)
	 */
	public CheckRapair getCheckRapairInf(Integer user_id) {
		CheckRapair checkRapair = checkRapairDao.findByappUserId(user_id);
		return checkRapair;
	}
	
	
	/* (non-Javadoc)
	 * @see com.ywjg.serviceimp.ICheckRapairService#findAllCheckRapair()
	 */
	public List<CheckRapair> findAllCheckRapair() {
		 List<CheckRapair> findAll = checkRapairDao.findAll();
		 return findAll;
	}
    /* (non-Javadoc)
	 * @see com.ywjg.serviceimp.ICheckRapairService#addRapairInf(com.ywjg.model.CheckRapair)
	 */
	@Transactional
	public CheckRapair addRapairInf(CheckRapair c) {
		CheckRapair savedCheckRapair = checkRapairDao.save(c);
		return savedCheckRapair;
	}
	
	
	
	@Transactional
	public CheckRapair upDateRapairInf(CheckRapair c) {
		CheckRapair savedCheckRapair = checkRapairDao.findOne(c.getId());
		Utils.copyPropertiesIgnoreNull(c, savedCheckRapair);
		CheckRapair save = checkRapairDao.save(savedCheckRapair);
		return save;
	}
	
	
	/* (non-Javadoc)
	 * @see com.ywjg.serviceimp.ICheckRapairService#addRapairType(com.ywjg.model.MyBean)
	 */
	@Transactional
	public void addRapairType(MyBean bean) {
		List<RapairToRapairType> types = bean.getTypes();
		for(RapairToRapairType r:types) {
			rapairToRapairTypeDao.save(r);
		}

	}
	
		
	/* (non-Javadoc)
	 * @see com.ywjg.serviceimp.ICheckRapairService#getRapairByType(int, int, int)
	 */
	public List<CheckRapair> getRapairByType(int typeId,int page,int size) {
		Pageable pageable = new PageRequest(page, size);
		List<RapairToRapairType> rtrts = rapairToRapairTypeDao.findByrapairTypeId(typeId,pageable);
		List<CheckRapair> checkRapairs = new ArrayList<CheckRapair>();
		for(RapairToRapairType r:rtrts) {
			CheckRapair cr = checkRapairDao.findOne(r.getCheckRapairId());
			checkRapairs.add(cr);
		}
		return checkRapairs;
	}
	
	
	
	

}